<?php
class EstabelecimentosController extends AppController {

	var $name = 'Estabelecimentos';
	var $helpers = array('Html', 'Form', 'Ajax', 'Javascript');
	var $components = array('RequestHandler');

	function index() {
		$this->Estabelecimento->recursive = 0;
		$this->set('estabelecimentos', $this->paginate());
	}
	
	function update_select_estados() {
		if(!empty($this->data['Estabelecimento']['pais_id'])) {
			$pais_id = $this->data['Estabelecimento']['pais_id'];
			$options = $this->Estabelecimento->Estado->find('list', array('conditions' => array('pais_id' => $pais_id )));
			$this->set('options', $options);
		}
	}
	
	function update_select_cidades() {
		if(!empty($this->data['Estabelecimento']['estado_id'])) {
			$est_id = $this->data['Estabelecimento']['estado_id'];
			$options = $this->Estabelecimento->Cidade->find('list', array('conditions' => array('estado_id' => $est_id )));
			$this->set('options', $options);
		}
	}

	function view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid Estabelecimento.', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->set('estabelecimento', $this->Estabelecimento->read(null, $id));
	}

	function add() {
		if (!empty($this->data)) {
			
			/* Testa se o javascript "destruiu" o select do estado e da cidade. Se destruiu, cria um vazio */
			
			if(!isset($this->data['Estabelecimento']['estado_id']))
				$this->data['Estabelecimento']['estado_id'] = null;
			if(!isset($this->data['Estabelecimento']['cidade_id']))
				$this->data['Estabelecimento']['cidade_id'] = null;
			
			
			$this->Estabelecimento->create();
			if ($this->Estabelecimento->save($this->data)) {
				$this->Session->setFlash(__('The Estabelecimento has been saved', true));
				$this->redirect(array('action'=>'index'));
			} else {
				$this->Session->setFlash(__('The Estabelecimento could not be saved. Please, try again.', true));
				$estados = $this->Estabelecimento->Estado->find('list', array('conditions' => array('pais_id' => $this->data['Estabelecimento']['pais_id'])));
				$cidades = $this->Estabelecimento->Cidade->find('list', array('conditions' => array('estado_id' => $this->data['Estabelecimento']['estado_id'])));
				$this->set(compact('estados', 'cidades'));
			}
		}
		$estruturas = $this->Estabelecimento->Estrutura->find('list');
		$fotos = $this->Estabelecimento->Foto->find('list');
		$paises = $this->Estabelecimento->Pais->find('list');
		$sites = $this->Estabelecimento->Site->find('list');
		$this->set(compact('estruturas', 'fotos', 'paises', 'sites'));
	}

	function edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Invalid Estabelecimento', true));
			$this->redirect(array('action'=>'index'));
		}
		if (!empty($this->data)) {
			if ($this->Estabelecimento->save($this->data)) {
				$this->Session->setFlash(__('The Estabelecimento has been saved', true));
				$this->redirect(array('action'=>'index'));
			} else {
				$this->Session->setFlash(__('The Estabelecimento could not be saved. Please, try again.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Estabelecimento->read(null, $id);
		}
		$estruturas = $this->Estabelecimento->Estrutura->find('list');
		$fotos = $this->Estabelecimento->Foto->find('list');
		$paises = $this->Estabelecimento->Pais->find('list');
		$estados = $this->Estabelecimento->Estado->find('list');
		$cidades = $this->Estabelecimento->Cidade->find('list');
		$sites = $this->Estabelecimento->Site->find('list');
		$this->set(compact('estruturas','fotos','paises','estados','cidades','sites'));
	}

	function delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid id for Estabelecimento', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Estabelecimento->del($id)) {
			$this->Session->setFlash(__('Estabelecimento deleted', true));
			$this->redirect(array('action'=>'index'));
		}
	}


	function admin_index() {
		$this->Estabelecimento->recursive = 0;
		$this->set('estabelecimentos', $this->paginate());
	}

	function admin_view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid Estabelecimento.', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->set('estabelecimento', $this->Estabelecimento->read(null, $id));
	}

	function admin_add() {
		if (!empty($this->data)) {
			$this->Estabelecimento->create();
			if ($this->Estabelecimento->save($this->data)) {
				$this->Session->setFlash(__('The Estabelecimento has been saved', true));
				$this->redirect(array('action'=>'index'));
			} else {
				$this->Session->setFlash(__('The Estabelecimento could not be saved. Please, try again.', true));
			}
		}
		$estruturas = $this->Estabelecimento->Estrutura->find('list');
		$fotos = $this->Estabelecimento->Foto->find('list');
		$paises = $this->Estabelecimento->Pais->find('list');
		$estados = $this->Estabelecimento->Estado->find('list');
		$cidades = $this->Estabelecimento->Cidade->find('list');
		$sites = $this->Estabelecimento->Site->find('list');
		$this->set(compact('estruturas', 'fotos', 'paises', 'estados', 'cidades', 'sites'));
	}

	function admin_edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Invalid Estabelecimento', true));
			$this->redirect(array('action'=>'index'));
		}
		if (!empty($this->data)) {
			if ($this->Estabelecimento->save($this->data)) {
				$this->Session->setFlash(__('The Estabelecimento has been saved', true));
				$this->redirect(array('action'=>'index'));
			} else {
				$this->Session->setFlash(__('The Estabelecimento could not be saved. Please, try again.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Estabelecimento->read(null, $id);
		}
		$estruturas = $this->Estabelecimento->Estrutura->find('list');
		$fotos = $this->Estabelecimento->Foto->find('list');
		$paises = $this->Estabelecimento->Pais->find('list');
		$estados = $this->Estabelecimento->Estado->find('list');
		$cidades = $this->Estabelecimento->Cidade->find('list');
		$sites = $this->Estabelecimento->Site->find('list');
		$this->set(compact('estruturas','fotos','paises','estados','cidades','sites'));
	}

	function admin_delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid id for Estabelecimento', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Estabelecimento->del($id)) {
			$this->Session->setFlash(__('Estabelecimento deleted', true));
			$this->redirect(array('action'=>'index'));
		}
	}

}
?>